/**
 * 
 */
package leetCode;

import java.util.List;

/**
 * @author zhongfang
 *
 */
public class MaximumDistanceinArrays {
        public static int maxDistance(List<List<Integer>> arrays) {
            int result=0;
            int max=-10001;
            int min=10001;
            for (int i = 0; i < arrays.size(); i++) {
                boolean updateMin=false;
                boolean updateMax=false;
                int originalMin=0,originalMax = 0;
                if(arrays.get(i).get(0)==min){
                    result=Math.max(result,max-min);
                }else if(min>arrays.get(i).get(0)){
                	originalMin=min;
                    min=arrays.get(i).get(0);
                    updateMin=true;
                }
                if(arrays.get(i).get(arrays.get(i).size()-1)==max){
                    result=Math.max(result,max-min);
                }else if(max<arrays.get(i).get(arrays.get(i).size()-1)){
                	originalMax=max;
                    max=arrays.get(i).get(arrays.get(i).size()-1);
                    updateMax=true;
                }
                if(updateMax&&updateMin){//两个都更新了，用原来的计算
                	if(max!=-10001&&min!=10001){//不是进行初始化
                		result=Math.max(result, originalMax-min);
                		result=Math.max(result, max-originalMin);
                	}
                }else if (updateMax||updateMin) {
                	result=Math.max(result,max-min);
				}
    		}
            return result;
        }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		int[][] array={{1,4},{0,5}};
//		System.out.println(maxDistance(array));
	}
}
